//
//  JKPresentationController.swift
//  JKWeibo
//
//  Created by albert on 16/5/13.
//  Copyright © 2016年 albert. All rights reserved.
//  自定义的UIPresentationController

import UIKit

class JKPresentationController: UIPresentationController {
    
    /** 保存菜单的尺寸 */
    var presentFrame = CGRectZero
    
    override func containerViewWillLayoutSubviews(){
        
        /**
        1.如果不自定义转场，modal的控制器会移除原有的控制器
        2.如果自定义转场，modal出来的控制器不会移除原有的控制器
        
        3.如果不自定义转场，modal的控制器的尺寸和屏幕一样
        4.如果不自定义转场，modal的控制器的尺寸我们可以自己在containerViewWillLayoutSubviews方法汇总控制
        
        5.containerView 非常重要，容器视图，所有modal出来的视图都是添加到containerView上的
        6.presentedView() 非常重要，通过该方法能够拿到弹出的视图
        */
//        presentedView()?.size = CGSize(width: 200, height: 200)
//        presentedView()?.y = 55
//        presentedView()?.x = (JKScreenW - (presentedView()?.width)!) * 0.5

        // 设置presentedView的frame
        presentedView()?.frame = presentFrame
        
        // 将backBtn放在底部
        containerView?.insertSubview(backBtn, atIndex: 0)
        
        // backBtn注册点击事件
        backBtn.addTarget(self, action: "dismiss", forControlEvents: UIControlEvents.TouchUpInside)
    }
    
    //MARK: - 懒加载后面的按钮
    private lazy var backBtn: UIButton = {
        let btn = UIButton(type: UIButtonType.Custom)
        btn.frame = JKScreenBounds
        
        return btn
    }()
    
    //MARK: - 点击退出菜单
    @objc private func dismiss(){
        presentedViewController.dismissViewControllerAnimated(true, completion: nil)
    }
}
